iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
AI/ ML & Data

From Python Beginner To AI Engineer系列 第 12

稍微進階的列舉用法

  • 分享至 

  • xImage
  •  

range() 的參數

range() 其實有多種用法,例如一個參數 range(7) 是從 0 依序列舉到 6,而兩個參數 range(2, 7) 則是從 2 依序列舉到 6。其實還可以放上第三個參數,代表列舉出來的數字間隔:

>>> for i in range(2, 9, 3):
>>>     print(i)
2
5
8

可以看到這個迴圈從 2 開始輸出,每間隔 3 就輸出一次,直到 8 為止。善用 range() 的三個參數,能幫助我們列舉出各種數列。這時你可能會想,我們能用 range() 來列舉浮點數嗎?答案是不行:

>>> for i in range(0.2, 0.7, 0.1):
>>>     print(i)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[1], line 1
----> 1 for i in range(0.2, 0.7, 0.1):
      2     print(i)

TypeError: 'float' object cannot be interpreted as an integer

下面這一段訊息,就是當 Python 程式出現問題時,會顯示的錯誤訊息,閱讀錯誤訊息是身為一個工程師相當重要的能力。通常錯誤訊息會有個像是 ----> 的箭頭,用來指示哪行程式碼出了問題。最後一行會附上錯誤說明,這裡的描述是 TypeError: 'float' object cannot be interpreted as an integer

一開始閱讀這些錯誤訊息可能很吃力,但是不用擔心,可以借助 ChatGPT 來幫助你,只要將程式碼錯誤訊息一同貼給 ChatGPT 即可,可以參考這份對話連結

根據 ChatGPT 的解釋,在 range() 函式裡面,參數只能給整數。那如果我真的想要列舉浮點數怎麼辦呢?這時可以搭配除法:

>>> for i in range(2, 7):
>>>     i /= 10
>>>     print(i)
0.2
0.3
0.4
0.5
0.6

這樣就能列舉浮點數囉!

自我練習

嘗試計算 1.3 + 1.6 + 1.9 + ... + 4.6 的總和。

完整的程式碼放在此 Colab 裡面供各位參考。


上一篇
有沒有更漂亮的輸出方式?
下一篇
可以自己寫函式嗎?
系列文
From Python Beginner To AI Engineer31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言